5
תגובות

מה ההבדל בין REQUEST ל POST ?

פתח soogo ,
מה ההבדל בין REQUEST ל POST ?

5 תשובות

avatar ענה JBStyle ב 12 לאוגוסט 2012 #

http://il.php.net/manual/en/reserved.variables.request.php
תקרא את הDescription .

avatar ענה soogo ב 12 לאוגוסט 2012 #

לא הבנתי מזה כלום

avatar ענה xzxxx7 ב 12 לאוגוסט 2012 #

המערך REQUEST כשמו כן הוא (בקשה).
לפרוטוקול HTTP יש כמה סוגי בקשות. הכי נפוצות הן GET ו POST, אך קיימות שמונה סוגי מתודה
(GET, HEAD, POST, PUT, DELETE, OPTIONS, TRACE, CONNECT).
המפתחים של PHP הבינו שליצור מערך לכל מתודה זה חסר ערך, אז הם יצרו את REQUEST שמכיל את כל המשתנים מכל סוג בקשה, כולל POST ו GET.

ככה שאם תשלח טופס במתודה HEAD לא תוכל לגשת למשתנים מהמערך _POST או _GET, בשביל זה יש את _REQUEST.
מבחינת אבטחה: אם השרת שלך עובד עם מתודות שהם לא GET\POST תמיד עדיף לבדוק באיזה מתודה הבקשה נשלחה, את זה עושים ככה:

<?php
  //echo $_SERVER['REQUEST_METHOD'];
 
  if($_SERVER['REQUEST_METHOD'] == 'HEAD')
  {
    echo $_REQUEST['Some_Var_Name'];
  }
  elseif($_SERVER['REQUEST_METHOD'] == 'POST')
  {
    echo $_POST['Some_Var_Name'];
  }
  elseif($_SERVER['REQUEST_METHOD'] == 'GET')
  {
    echo $_GET['Some_Var_Name'];
  }
  else
  {
    echo "Unknow/Unsupported method type.";
  }

avatar ענה soogo ב 12 לאוגוסט 2012 #

אז אם כך מה הטעם בלהשתמש בשאר המתודות?

avatar ענה JBStyle ב 12 לאוגוסט 2012 #

מה ז"א ? לכל אחת שימוש משלה. מה הטעם להשתמש בGET ? מה הטעם להשתמש בPOST ? לכל אחד יש שימוש משלו .

חשוב לדעת שבברירת המחדל $_REQUEST מכיל מערך שבו יש רק קוקיז, GET וPOST .